home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 January: Mac OS SDK / Dev.CD Jan 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / CIncludes / OCEStandardMail.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-17  |  21.7 KB  |  686 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        OCEStandardMail.h
  3.  
  4.      Contains:    Apple Open Collaboration Environment Standard Mail Interfaces.
  5.  
  6.      Version:    Technology:    AOCE Toolbox 1.02
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1994-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __OCESTANDARDMAIL__
  18. #define __OCESTANDARDMAIL__
  19.  
  20. #ifndef __APPLEEVENTS__
  21. #include <AppleEvents.h>
  22. #endif
  23. #ifndef __DIALOGS__
  24. #include <Dialogs.h>
  25. #endif
  26. #ifndef __FILES__
  27. #include <Files.h>
  28. #endif
  29. #ifndef __QUICKDRAW__
  30. #include <Quickdraw.h>
  31. #endif
  32.  
  33. #ifndef __OCEAUTHDIR__
  34. #include <OCEAuthDir.h>
  35. #endif
  36. #ifndef __OCEMAIL__
  37. #include <OCEMail.h>
  38. #endif
  39.  
  40.  
  41.  
  42. #if PRAGMA_ONCE
  43. #pragma once
  44. #endif
  45.  
  46. #ifdef __cplusplus
  47. extern "C" {
  48. #endif
  49.  
  50. #if PRAGMA_IMPORT
  51. #pragma import on
  52. #endif
  53.  
  54. #if PRAGMA_STRUCT_ALIGN
  55.     #pragma options align=mac68k
  56. #elif PRAGMA_STRUCT_PACKPUSH
  57.     #pragma pack(push, 2)
  58. #elif PRAGMA_STRUCT_PACK
  59.     #pragma pack(2)
  60. #endif
  61.  
  62.  
  63. enum {
  64.     kSMPVersion                    = 1
  65. };
  66.  
  67.  
  68. enum {
  69.     kSMPNativeFormatName        = FOUR_CHAR_CODE('natv')
  70. };
  71.  
  72.  
  73. struct LetterSpec {
  74.     unsigned long                     spec[3];
  75. };
  76. typedef struct LetterSpec                LetterSpec;
  77.  
  78. enum {
  79.     typeLetterSpec                = FOUR_CHAR_CODE('lttr')
  80. };
  81.  
  82. /*    Wildcard used for filtering letter types. */
  83.  
  84. enum {
  85.     FilterAnyLetter                = FOUR_CHAR_CODE('ltr*'),
  86.     FilterAppleLetterContent    = FOUR_CHAR_CODE('ltc*'),
  87.     FilterImageContent            = FOUR_CHAR_CODE('lti*')
  88. };
  89.  
  90.  
  91.  
  92. struct LetterDescriptor {
  93.     Boolean                         onDisk;
  94.     Boolean                         filler1;
  95.     union {
  96.         FSSpec                             fileSpec;
  97.         LetterSpec                         mailboxSpec;
  98.     }                                 u;
  99. };
  100. typedef struct LetterDescriptor            LetterDescriptor;
  101. /*
  102. SMPPSendAs values.  You may add the following values together to determine how the
  103. file is sent, but you may not set both kSMPSendAsEnclosureMask and kSMPSendFileOnlyMask.  This
  104. will allow you to send the letter as an image so that it will work with fax gateways
  105. and send as an enclosure as well.
  106. */
  107.  
  108. enum {
  109.     kSMPSendAsEnclosureBit        = 0,                            /* Appears as letter with enclosures */
  110.     kSMPSendFileOnlyBit            = 1,                            /* Appears as a file in mailbox. */
  111.     kSMPSendAsImageBit            = 2                                /* Content imaged in letter */
  112. };
  113.  
  114. /* Values of SMPPSendAs */
  115.  
  116. enum {
  117.     kSMPSendAsEnclosureMask        = 1 << kSMPSendAsEnclosureBit,
  118.     kSMPSendFileOnlyMask        = 1 << kSMPSendFileOnlyBit,
  119.     kSMPSendAsImageMask            = 1 << kSMPSendAsImageBit
  120. };
  121.  
  122.  
  123. typedef Byte                             SMPPSendAs;
  124. /* Send Package Structures */
  125. typedef CALLBACK_API( void , SMPDrawImageProcPtr )(long refcon, Boolean inColor);
  126. typedef STACK_UPP_TYPE(SMPDrawImageProcPtr)                     SMPDrawImageUPP;
  127. enum { uppSMPDrawImageProcInfo = 0x000001C0 };                     /* pascal no_return_value Func(4_bytes, 1_byte) */
  128. #define NewSMPDrawImageProc(userRoutine)                         (SMPDrawImageUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSMPDrawImageProcInfo, GetCurrentArchitecture())
  129. #define CallSMPDrawImageProc(userRoutine, refcon, inColor)         CALL_TWO_PARAMETER_UPP((userRoutine), uppSMPDrawImageProcInfo, (refcon), (inColor))
  130.  
  131. struct SMPRecipientDescriptor {
  132.     struct SMPRecipientDescriptor *    next;                        /*  Q-Link. */
  133.     OSErr                             result;                        /*  result code when using the object. */
  134.     OCEPackedRecipient *            recipient;                    /*  Pointer to a Packed Address. */
  135.     unsigned long                     size;                        /*  length of recipient in bytes. */
  136.     MailRecipient                     theAddress;                    /*  structure points into recipient and theRID. */
  137.     RecordID                         theRID;                        /*  structure points into recipient. */
  138. };
  139. typedef struct SMPRecipientDescriptor    SMPRecipientDescriptor;
  140. typedef SMPRecipientDescriptor *        SMPRecipientDescriptorPtr;
  141.  
  142. struct SMPEnclosureDescriptor {
  143.     struct SMPEnclosureDescriptor *    next;
  144.     OSErr                             result;
  145.     FSSpec                             fileSpec;
  146.     OSType                             fileCreator;                /*  Creator of this enclosure. */
  147.     OSType                             fileType;                    /*  File Type of this enclosure. */
  148. };
  149. typedef struct SMPEnclosureDescriptor    SMPEnclosureDescriptor;
  150. typedef SMPEnclosureDescriptor *        SMPEnclosureDescriptorPtr;
  151.  
  152. struct SMPLetterPB {
  153.     OSErr                             result;                        /* result of operation */
  154.     RStringPtr                         subject;                    /* RString */
  155.     AuthIdentity                     senderIdentity;                /* Letter is sent from this Identity */
  156.     SMPRecipientDescriptorPtr         toList;                        /* Pointer to linked list */
  157.     SMPRecipientDescriptorPtr         ccList;                        /* Pointer to linked list */
  158.     SMPRecipientDescriptorPtr         bccList;                    /* Pointer to linked list */
  159.     ScriptCode                         script;                        /* Identifier for language */
  160.     Size                             textSize;                    /* length of body data */
  161.     void *                            textBuffer;                    /* body of the letter */
  162.     SMPPSendAs                         sendAs;                        /* Send as Letter,Enclosure,Image */
  163.     Byte                             padByte;
  164.     SMPEnclosureDescriptorPtr         enclosures;                    /* files to be enclosed */
  165.     SMPDrawImageUPP                 drawImageProc;                /* For imaging */
  166.     long                             imageRefCon;                /* For imaging */
  167.     Boolean                         supportsColor;                /* For imaging - set to true if you application supports color imaging */
  168.     Boolean                         filler1;
  169. };
  170. typedef struct SMPLetterPB                SMPLetterPB;
  171. typedef SMPLetterPB *                    SMPLetterPBPtr;
  172.  
  173. enum {
  174.     kSMPAppMustHandleEventBit    = 0,
  175.     kSMPAppShouldIgnoreEventBit    = 1,
  176.     kSMPContractedBit            = 2,
  177.     kSMPExpandedBit                = 3,
  178.     kSMPMailerBecomesTargetBit    = 4,
  179.     kSMPAppBecomesTargetBit        = 5,
  180.     kSMPCursorOverMailerBit        = 6,
  181.     kSMPCreateCopyWindowBit        = 7,
  182.     kSMPDisposeCopyWindowBit    = 8
  183. };
  184.  
  185. /* Values of SMPMailerResult */
  186.  
  187. enum {
  188.     kSMPAppMustHandleEventMask    = 1 << kSMPAppMustHandleEventBit,
  189.     kSMPAppShouldIgnoreEventMask = 1 << kSMPAppShouldIgnoreEventBit,
  190.     kSMPContractedMask            = 1 << kSMPContractedBit,
  191.     kSMPExpandedMask            = 1 << kSMPExpandedBit,
  192.     kSMPMailerBecomesTargetMask    = 1 << kSMPMailerBecomesTargetBit,
  193.     kSMPAppBecomesTargetMask    = 1 << kSMPAppBecomesTargetBit,
  194.     kSMPCursorOverMailerMask    = 1 << kSMPCursorOverMailerBit,
  195.     kSMPCreateCopyWindowMask    = 1 << kSMPCreateCopyWindowBit,
  196.     kSMPDisposeCopyWindowMask    = 1 << kSMPDisposeCopyWindowBit
  197. };
  198.  
  199.  
  200. typedef unsigned long                     SMPMailerResult;
  201. /* Values of SMPMailerComponent*/
  202.  
  203. enum {
  204.     kSMPOther                    = -1,
  205.     kSMPFrom                    = 32,
  206.     kSMPTo                        = 20,
  207.     kSMPRegarding                = 22,
  208.     kSMPSendDateTime            = 29,
  209.     kSMPAttachments                = 26,
  210.     kSMPAddressOMatic            = 16
  211. };
  212.  
  213. typedef unsigned long                     SMPMailerComponent;
  214.  
  215.  
  216. enum {
  217.     kSMPToAddress                = kMailToBit,
  218.     kSMPCCAddress                = kMailCcBit,
  219.     kSMPBCCAddress                = kMailBccBit
  220. };
  221.  
  222. typedef MailAttributeID                 SMPAddressType;
  223.  
  224.  
  225. enum {
  226.     kSMPUndoCommand                = 0,
  227.     kSMPCutCommand                = 1,
  228.     kSMPCopyCommand                = 2,
  229.     kSMPPasteCommand            = 3,
  230.     kSMPClearCommand            = 4,
  231.     kSMPSelectAllCommand        = 5
  232. };
  233.  
  234. typedef unsigned short                     SMPEditCommand;
  235.  
  236. enum {
  237.     kSMPUndoDisabled            = 0,
  238.     kSMPAppMayUndo                = 1,
  239.     kSMPMailerUndo                = 2
  240. };
  241.  
  242. typedef unsigned short                     SMPUndoState;
  243. /*
  244. SMPSendFormatMask:
  245.  
  246. Bitfield indicating which combinations of formats are included in,
  247. should be included or, or can be included in a letter.
  248. */
  249.  
  250. enum {
  251.     kSMPNativeBit                = 0,
  252.     kSMPImageBit                = 1,
  253.     kSMPStandardInterchangeBit    = 2
  254. };
  255.  
  256. /* Values of SMPSendFormatMask */
  257.  
  258. enum {
  259.     kSMPNativeMask                = 1 << kSMPNativeBit,
  260.     kSMPImageMask                = 1 << kSMPImageBit,
  261.     kSMPStandardInterchangeMask    = 1 << kSMPStandardInterchangeBit
  262. };
  263.  
  264. typedef unsigned long                     SMPSendFormatMask;
  265.  
  266. /*
  267.     Pseudo-events passed to the clients filter proc for initialization and cleanup.
  268. */
  269.  
  270. enum {
  271.     kSMPSendOptionsStart        = -1,
  272.     kSMPSendOptionsEnd            = -2
  273. };
  274.  
  275.  
  276. /*
  277. SMPSendFormatMask:
  278.  
  279. Structure describing the format of a letter.  If kSMPNativeMask bit is set, the whichNativeFormat field indicates which of the client-defined formats to use.
  280. */
  281.  
  282.  
  283. struct SMPSendFormat {
  284.     SMPSendFormatMask                 whichFormats;
  285.     short                             whichNativeFormat;            /* 0 based */
  286. };
  287. typedef struct SMPSendFormat            SMPSendFormat;
  288.  
  289.  
  290.  
  291. struct SMPLetterInfo {
  292.     OSType                             letterCreator;
  293.     OSType                             letterType;
  294.     RString32                         subject;
  295.     RString32                         sender;
  296. };
  297. typedef struct SMPLetterInfo            SMPLetterInfo;
  298.  
  299.  
  300. enum {
  301.     kSMPSave                    = 0,
  302.     kSMPSaveAs                    = 1,
  303.     kSMPSaveACopy                = 2
  304. };
  305.  
  306.  
  307. typedef unsigned short                     SMPSaveType;
  308. typedef CALLBACK_API( WindowPtr , FrontWindowProcPtr )(long clientData);
  309. typedef CALLBACK_API( void , PrepareMailerForDrawingProcPtr )(WindowPtr window, long clientData);
  310. typedef STACK_UPP_TYPE(FrontWindowProcPtr)                         FrontWindowUPP;
  311. typedef STACK_UPP_TYPE(PrepareMailerForDrawingProcPtr)             PrepareMailerForDrawingUPP;
  312. enum { uppFrontWindowProcInfo = 0x000000F0 };                     /* pascal 4_bytes Func(4_bytes) */
  313. enum { uppPrepareMailerForDrawingProcInfo = 0x000003C0 };         /* pascal no_return_value Func(4_bytes, 4_bytes) */
  314. #define NewFrontWindowProc(userRoutine)                         (FrontWindowUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFrontWindowProcInfo, GetCurrentArchitecture())
  315. #define NewPrepareMailerForDrawingProc(userRoutine)             (PrepareMailerForDrawingUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppPrepareMailerForDrawingProcInfo, GetCurrentArchitecture())
  316. #define CallFrontWindowProc(userRoutine, clientData)             CALL_ONE_PARAMETER_UPP((userRoutine), uppFrontWindowProcInfo, (clientData))
  317. #define CallPrepareMailerForDrawingProc(userRoutine, window, clientData)  CALL_TWO_PARAMETER_UPP((userRoutine), uppPrepareMailerForDrawingProcInfo, (window), (clientData))
  318. typedef CALLBACK_API( Boolean , SendOptionsFilterProcPtr )(DialogPtr theDialog, EventRecord *theEvent, short itemHit, long clientData);
  319. typedef STACK_UPP_TYPE(SendOptionsFilterProcPtr)                 SendOptionsFilterUPP;
  320. enum { uppSendOptionsFilterProcInfo = 0x00003BD0 };             /* pascal 1_byte Func(4_bytes, 4_bytes, 2_bytes, 4_bytes) */
  321. #define NewSendOptionsFilterProc(userRoutine)                     (SendOptionsFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSendOptionsFilterProcInfo, GetCurrentArchitecture())
  322. #define CallSendOptionsFilterProc(userRoutine, theDialog, theEvent, itemHit, clientData)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppSendOptionsFilterProcInfo, (theDialog), (theEvent), (itemHit), (clientData))
  323.  
  324. struct SMPMailerState {
  325.     short                             mailerCount;
  326.     short                             currentMailer;
  327.     Point                             upperLeft;
  328.     Boolean                         hasBeenReceived;
  329.     Boolean                         isTarget;
  330.     Boolean                         isExpanded;
  331.     Boolean                         canMoveToTrash;
  332.     Boolean                         canTag;
  333.     Byte                             padByte2;
  334.     unsigned long                     changeCount;
  335.     SMPMailerComponent                 targetComponent;
  336.     Boolean                         canCut;
  337.     Boolean                         canCopy;
  338.     Boolean                         canPaste;
  339.     Boolean                         canClear;
  340.     Boolean                         canSelectAll;
  341.     Byte                             padByte3;
  342.     SMPUndoState                     undoState;
  343.     Str63                             undoWhat;
  344. };
  345. typedef struct SMPMailerState            SMPMailerState;
  346.  
  347.  
  348. struct SMPSendOptions {
  349.     Boolean                         signWhenSent;
  350.     IPMPriority                     priority;
  351. };
  352. typedef struct SMPSendOptions            SMPSendOptions;
  353. typedef SMPSendOptions *                SMPSendOptionsPtr;
  354. typedef SMPSendOptionsPtr *                SMPSendOptionsHandle;
  355.  
  356.  
  357. struct SMPCloseOptions {
  358.     Boolean                         moveToTrash;
  359.     Boolean                         addTag;
  360.     RString32                         tag;
  361. };
  362. typedef struct SMPCloseOptions            SMPCloseOptions;
  363. typedef SMPCloseOptions *                SMPCloseOptionsPtr;
  364.  
  365. /*----------------------------------------------------------------------------------------
  366.     Send Package Routines
  367. ----------------------------------------------------------------------------------------*/
  368. EXTERN_API( OSErr )
  369. SMPSendLetter                    (SMPLetterPBPtr         theLetter)                            FOURWORDINLINE(0x203C, 0x0002, 0x01F4, 0xAA5D);
  370.  
  371. EXTERN_API( OSErr )
  372. SMPNewPage                        (OpenCPicParams *        newHeader)                            FOURWORDINLINE(0x203C, 0x0002, 0x0834, 0xAA5D);
  373.  
  374. EXTERN_API( OSErr )
  375. SMPImageErr                        (void)                                                        FOURWORDINLINE(0x203C, 0x0000, 0x0835, 0xAA5D);
  376.  
  377. EXTERN_API( OSErr )
  378. SMPResolveToRecipient            (PackedDSSpecPtr         dsSpec,
  379.                                  SMPRecipientDescriptorPtr * recipientList,
  380.                                  AuthIdentity             identity)                            FOURWORDINLINE(0x203C, 0x0006, 0x044C, 0xAA5D);
  381.  
  382.  
  383.  
  384. EXTERN_API( OSErr )
  385. SMPInitMailer                    (long                     mailerVersion)                        FOURWORDINLINE(0x203C, 0x0002, 0x1285, 0xAA5D);
  386.  
  387. EXTERN_API( OSErr )
  388. SMPGetDimensions                (short *                width,
  389.                                  short *                contractedHeight,
  390.                                  short *                expandedHeight)                        FOURWORDINLINE(0x203C, 0x0006, 0x125C, 0xAA5D);
  391.  
  392. EXTERN_API( OSErr )
  393. SMPGetTabInfo                    (SMPMailerComponent *    firstTab,
  394.                                  SMPMailerComponent *    lastTab)                            FOURWORDINLINE(0x203C, 0x0004, 0x1274, 0xAA5D);
  395.  
  396. EXTERN_API( OSErr )
  397. SMPNewMailer                    (WindowPtr                 window,
  398.                                  Point                     upperLeft,
  399.                                  Boolean                 canContract,
  400.                                  Boolean                 initiallyExpanded,
  401.                                  AuthIdentity             identity,
  402.                                  PrepareMailerForDrawingUPP  prepareMailerForDrawingCB,
  403.                                  long                     clientData)                            FOURWORDINLINE(0x203C, 0x000C, 0x125D, 0xAA5D);
  404.  
  405. EXTERN_API( OSErr )
  406. SMPPrepareToClose                (WindowPtr                 window)                                FOURWORDINLINE(0x203C, 0x0002, 0x1287, 0xAA5D);
  407.  
  408. EXTERN_API( OSErr )
  409. SMPCloseOptionsDialog            (WindowPtr                 window,
  410.                                  SMPCloseOptionsPtr     closeOptions)                        FOURWORDINLINE(0x203C, 0x0004, 0x1288, 0xAA5D);
  411.  
  412. EXTERN_API( OSErr )
  413. SMPTagDialog                    (WindowPtr                 window,
  414.                                  RString32 *            theTag)                                FOURWORDINLINE(0x203C, 0x0004, 0x128B, 0xAA5D);
  415.  
  416. EXTERN_API( OSErr )
  417. SMPDisposeMailer                (WindowPtr                 window,
  418.                                  SMPCloseOptionsPtr     closeOptions)                        FOURWORDINLINE(0x203C, 0x0004, 0x125E, 0xAA5D);
  419.  
  420. EXTERN_API( OSErr )
  421. SMPMailerEvent                    (const EventRecord *    event,
  422.                                  SMPMailerResult *        whatHappened,
  423.                                  FrontWindowUPP         frontWindowCB,
  424.                                  long                     clientData)                            FOURWORDINLINE(0x203C, 0x0008, 0x125F, 0xAA5D);
  425.  
  426. EXTERN_API( OSErr )
  427. SMPClearUndo                    (WindowPtr                 window)                                FOURWORDINLINE(0x203C, 0x0002, 0x1275, 0xAA5D);
  428.  
  429. EXTERN_API( OSErr )
  430. SMPMailerEditCommand            (WindowPtr                 window,
  431.                                  SMPEditCommand         command,
  432.                                  SMPMailerResult *        whatHappened)                        FOURWORDINLINE(0x203C, 0x0005, 0x1260, 0xAA5D);
  433.  
  434. EXTERN_API( OSErr )
  435. SMPMailerForward                (WindowPtr                 window,
  436.                                  AuthIdentity             from)                                FOURWORDINLINE(0x203C, 0x0004, 0x1261, 0xAA5D);
  437.  
  438. EXTERN_API( OSErr )
  439. SMPMailerReply                    (WindowPtr                 originalLetter,
  440.                                  WindowPtr                 newLetter,
  441.                                  Boolean                 replyToAll,
  442.                                  Point                     upperLeft,
  443.                                  Boolean                 canContract,
  444.                                  Boolean                 initiallyExpanded,
  445.                                  AuthIdentity             identity,
  446.                                  PrepareMailerForDrawingUPP  prepareMailerForDrawingCB,
  447.                                  long                     clientData)                            FOURWORDINLINE(0x203C, 0x000F, 0x1262, 0xAA5D);
  448.  
  449. EXTERN_API( OSErr )
  450. SMPGetMailerState                (WindowPtr                 window,
  451.                                  SMPMailerState *        itsState)                            FOURWORDINLINE(0x203C, 0x0004, 0x1263, 0xAA5D);
  452.  
  453. EXTERN_API( OSErr )
  454. SMPSendOptionsDialog            (WindowPtr                 window,
  455.                                  Str255                 documentName,
  456.                                  StringPtr                 nativeFormatNames[],
  457.                                  unsigned short         nameCount,
  458.                                  SMPSendFormatMask         canSend,
  459.                                  SMPSendFormat *        currentFormat,
  460.                                  SendOptionsFilterUPP     filterProc,
  461.                                  long                     clientData,
  462.                                  SMPSendFormat *        shouldSend,
  463.                                  SMPSendOptionsPtr         sendOptions)                        FOURWORDINLINE(0x203C, 0x0013, 0x1388, 0xAA5D);
  464.  
  465.  
  466. EXTERN_API( OSErr )
  467. SMPPrepareCoverPages            (WindowPtr                 window,
  468.                                  short *                pageCount)                            FOURWORDINLINE(0x203C, 0x0004, 0x1264, 0xAA5D);
  469.  
  470. EXTERN_API( OSErr )
  471. SMPDrawNthCoverPage                (WindowPtr                 window,
  472.                                  short                     pageNumber,
  473.                                  Boolean                 doneDrawingCoverPages)                FOURWORDINLINE(0x203C, 0x0004, 0x1265, 0xAA5D);
  474.  
  475. EXTERN_API( OSErr )
  476. SMPPrepareToChange                (WindowPtr                 window)                                FOURWORDINLINE(0x203C, 0x0002, 0x1289, 0xAA5D);
  477.  
  478. EXTERN_API( OSErr )
  479. SMPContentChanged                (WindowPtr                 window)                                FOURWORDINLINE(0x203C, 0x0002, 0x126F, 0xAA5D);
  480.  
  481. EXTERN_API( OSErr )
  482. SMPBeginSave                    (WindowPtr                 window,
  483.                                  const FSSpec *            diskLetter,
  484.                                  OSType                 creator,
  485.                                  OSType                 fileType,
  486.                                  SMPSaveType             saveType,
  487.                                  Boolean *                mustAddContent)                        FOURWORDINLINE(0x203C, 0x000B, 0x1266, 0xAA5D);
  488.  
  489. EXTERN_API( OSErr )
  490. SMPEndSave                        (WindowPtr                 window,
  491.                                  Boolean                 okToSave)                            FOURWORDINLINE(0x203C, 0x0003, 0x1270, 0xAA5D);
  492.  
  493. EXTERN_API( OSErr )
  494. SMPBeginSend                    (WindowPtr                 window,
  495.                                  OSType                 creator,
  496.                                  OSType                 fileType,
  497.                                  SMPSendOptionsPtr         sendOptions,
  498.                                  Boolean *                mustAddContent)                        FOURWORDINLINE(0x203C, 0x000A, 0x1267, 0xAA5D);
  499.  
  500. EXTERN_API( OSErr )
  501. SMPEndSend                        (WindowPtr                 window,
  502.                                  Boolean                 okToSend)                            FOURWORDINLINE(0x203C, 0x0003, 0x1271, 0xAA5D);
  503.  
  504. EXTERN_API( OSErr )
  505. SMPOpenLetter                    (const LetterDescriptor * letter,
  506.                                  WindowPtr                 window,
  507.                                  Point                     upperLeft,
  508.                                  Boolean                 canContract,
  509.                                  Boolean                 initiallyExpanded,
  510.                                  PrepareMailerForDrawingUPP  prepareMailerForDrawingCB,
  511.                                  long                     clientData)                            FOURWORDINLINE(0x203C, 0x000C, 0x1268, 0xAA5D);
  512.  
  513. EXTERN_API( OSErr )
  514. SMPAddMainEnclosure                (WindowPtr                 window,
  515.                                  const FSSpec *            enclosure)                            FOURWORDINLINE(0x203C, 0x0004, 0x127D, 0xAA5D);
  516.  
  517. EXTERN_API( OSErr )
  518. SMPGetMainEnclosureFSSpec        (WindowPtr                 window,
  519.                                  FSSpec *                enclosureDir)                        FOURWORDINLINE(0x203C, 0x0004, 0x127E, 0xAA5D);
  520.  
  521. EXTERN_API( OSErr )
  522. SMPAddContent                    (WindowPtr                 window,
  523.                                  MailSegmentType         segmentType,
  524.                                  Boolean                 appendFlag,
  525.                                  void *                    buffer,
  526.                                  unsigned long             bufferSize,
  527.                                  StScrpRec *            textScrap,
  528.                                  Boolean                 startNewScript,
  529.                                  ScriptCode             script)                                FOURWORDINLINE(0x203C, 0x000C, 0x127A, 0xAA5D);
  530.  
  531. EXTERN_API( OSErr )
  532. SMPReadContent                    (WindowPtr                 window,
  533.                                  MailSegmentMask         segmentTypeMask,
  534.                                  void *                    buffer,
  535.                                  unsigned long             bufferSize,
  536.                                  unsigned long *        dataSize,
  537.                                  StScrpRec *            textScrap,
  538.                                  ScriptCode *            script,
  539.                                  MailSegmentType *        segmentType,
  540.                                  Boolean *                endOfScript,
  541.                                  Boolean *                endOfSegment,
  542.                                  Boolean *                endOfContent,
  543.                                  long *                    segmentLength,
  544.                                  long *                    segmentID)                            FOURWORDINLINE(0x203C, 0x0019, 0x127B, 0xAA5D);
  545.  
  546. EXTERN_API( OSErr )
  547. SMPGetFontNameFromLetter        (WindowPtr                 window,
  548.                                  short                     fontNum,
  549.                                  Str255                 fontName,
  550.                                  Boolean                 doneWithFontTable)                    FOURWORDINLINE(0x203C, 0x0006, 0x127C, 0xAA5D);
  551.  
  552. EXTERN_API( OSErr )
  553. SMPAddBlock                        (WindowPtr                 window,
  554.                                  const OCECreatorType *    blockType,
  555.                                  Boolean                 append,
  556.                                  void *                    buffer,
  557.                                  unsigned long             bufferSize,
  558.                                  MailBlockMode             mode,
  559.                                  unsigned long             offset)                                FOURWORDINLINE(0x203C, 0x000C, 0x127F, 0xAA5D);
  560.  
  561. EXTERN_API( OSErr )
  562. SMPReadBlock                    (WindowPtr                 window,
  563.                                  const OCECreatorType *    blockType,
  564.                                  unsigned short         blockIndex,
  565.                                  void *                    buffer,
  566.                                  unsigned long             bufferSize,
  567.                                  unsigned long             dataOffset,
  568.                                  unsigned long *        dataSize,
  569.                                  Boolean *                endOfBlock,
  570.                                  unsigned long *        remaining)                            FOURWORDINLINE(0x203C, 0x0011, 0x1280, 0xAA5D);
  571.  
  572. EXTERN_API( OSErr )
  573. SMPEnumerateBlocks                (WindowPtr                 window,
  574.                                  unsigned short         startIndex,
  575.                                  void *                    buffer,
  576.                                  unsigned long             bufferSize,
  577.                                  unsigned long *        dataSize,
  578.                                  unsigned short *        nextIndex,
  579.                                  Boolean *                more)                                FOURWORDINLINE(0x203C, 0x000D, 0x1281, 0xAA5D);
  580.  
  581. EXTERN_API( OSErr )
  582. SMPDrawMailer                    (WindowPtr                 window)                                FOURWORDINLINE(0x203C, 0x0002, 0x1269, 0xAA5D);
  583.  
  584.  
  585. EXTERN_API( OSErr )
  586. SMPSetSubject                    (WindowPtr                 window,
  587.                                  const RString *        text)                                FOURWORDINLINE(0x203C, 0x0004, 0x126B, 0xAA5D);
  588.  
  589. EXTERN_API( OSErr )
  590. SMPSetFromIdentity                (WindowPtr                 window,
  591.                                  AuthIdentity             from)                                FOURWORDINLINE(0x203C, 0x0004, 0x126C, 0xAA5D);
  592.  
  593. EXTERN_API( OSErr )
  594. SMPAddAddress                    (WindowPtr                 window,
  595.                                  SMPAddressType         addrType,
  596.                                  OCEPackedRecipient *    address)                            FOURWORDINLINE(0x203C, 0x0005, 0x126D, 0xAA5D);
  597.  
  598. EXTERN_API( OSErr )
  599. SMPAddAttachment                (WindowPtr                 window,
  600.                                  const FSSpec *            attachment)                            FOURWORDINLINE(0x203C, 0x0004, 0x126E, 0xAA5D);
  601.  
  602. EXTERN_API( OSErr )
  603. SMPAttachDialog                    (WindowPtr                 window)                                FOURWORDINLINE(0x203C, 0x0002, 0x1276, 0xAA5D);
  604.  
  605.  
  606. EXTERN_API( OSErr )
  607. SMPExpandOrContract                (WindowPtr                 window,
  608.                                  Boolean                 expand)                                FOURWORDINLINE(0x203C, 0x0003, 0x1272, 0xAA5D);
  609.  
  610.  
  611. EXTERN_API( OSErr )
  612. SMPMoveMailer                    (WindowPtr                 window,
  613.                                  short                     dh,
  614.                                  short                     dv)                                    FOURWORDINLINE(0x203C, 0x0004, 0x126A, 0xAA5D);
  615.  
  616.  
  617. EXTERN_API( OSErr )
  618. SMPBecomeTarget                    (WindowPtr                 window,
  619.                                  Boolean                 becomeTarget,
  620.                                  SMPMailerComponent     whichField)                            FOURWORDINLINE(0x203C, 0x0005, 0x1273, 0xAA5D);
  621.  
  622.  
  623. EXTERN_API( OSErr )
  624. SMPGetComponentSize                (WindowPtr                 window,
  625.                                  unsigned short         whichMailer,
  626.                                  SMPMailerComponent     whichField,
  627.                                  unsigned short *        size)                                FOURWORDINLINE(0x203C, 0x0007, 0x1277, 0xAA5D);
  628.  
  629.  
  630. EXTERN_API( OSErr )
  631. SMPGetComponentInfo                (WindowPtr                 window,
  632.                                  unsigned short         whichMailer,
  633.                                  SMPMailerComponent     whichField,
  634.                                  void *                    buffer)                                FOURWORDINLINE(0x203C, 0x0007, 0x1278, 0xAA5D);
  635.  
  636.  
  637. EXTERN_API( OSErr )
  638. SMPGetListItemInfo                (WindowPtr                 window,
  639.                                  unsigned short         whichMailer,
  640.                                  SMPMailerComponent     whichField,
  641.                                  void *                    buffer,
  642.                                  unsigned long             bufferLength,
  643.                                  unsigned short         startItem,
  644.                                  unsigned short *        itemCount,
  645.                                  unsigned short *        nextItem,
  646.                                  Boolean *                more)                                FOURWORDINLINE(0x203C, 0x0010, 0x1279, 0xAA5D);
  647.  
  648. EXTERN_API( OSErr )
  649. SMPImage                        (WindowPtr                 window,
  650.                                  SMPDrawImageUPP         drawImageProc,
  651.                                  long                     imageRefCon,
  652.                                  Boolean                 supportsColor)                        FOURWORDINLINE(0x203C, 0x0007, 0x1282, 0xAA5D);
  653.  
  654. EXTERN_API( OSErr )
  655. SMPGetNextLetter                (OSType *                typesList,
  656.                                  short                     numTypes,
  657.                                  LetterDescriptor *        adjacentLetter)                        FOURWORDINLINE(0x203C, 0x0005, 0x1286, 0xAA5D);
  658.  
  659. EXTERN_API( OSErr )
  660. SMPGetLetterInfo                (LetterSpec *            mailboxSpec,
  661.                                  SMPLetterInfo *        info)                                FOURWORDINLINE(0x203C, 0x0004, 0x128A, 0xAA5D);
  662.  
  663.  
  664.  
  665.  
  666. #if PRAGMA_STRUCT_ALIGN
  667.     #pragma options align=reset
  668. #elif PRAGMA_STRUCT_PACKPUSH
  669.     #pragma pack(pop)
  670. #elif PRAGMA_STRUCT_PACK
  671.     #pragma pack()
  672. #endif
  673.  
  674. #ifdef PRAGMA_IMPORT_OFF
  675. #pragma import off
  676. #elif PRAGMA_IMPORT
  677. #pragma import reset
  678. #endif
  679.  
  680. #ifdef __cplusplus
  681. }
  682. #endif
  683.  
  684. #endif /* __OCESTANDARDMAIL__ */
  685.  
  686.